package cn.ahaiahaixx.dao;

import org.apache.ibatis.annotations.Mapper;

import cn.ahaiahaixx.entity.TbToken;

/**
 * Token追踪 如果用户没有提供Token,创建新的Token添加到数据库中，返回token给客户端
 * 如果客户端提供了Token，就判断token是否在数据库中存在，且没有过期(lastupdate)<br>
 * 不存在或者过期就回到新建的流程,存在就更新过期时间(lastupdata)<br>
 * 如果Token对应的客户端长期不向服务器数据，会造成数据库资源浪费 所以要开启定时任务检查token的lastupdata，超过一定时间就会自动清理
 * 
 * @author Aiden Pearce
 *
 */
@Mapper
public interface TbTokenDAO {
	/**
	 * 添加
	 * @param token
	 * @return
	 * @throws Exception
	 */
	int addToken(TbToken token)throws Exception;									

	/**
	 * 更新token时间
	 * @param token
	 * @return
	 * @throws Exception
	 */
	int updateToken(TbToken token)throws Exception;
	
	/**
	 * queryToken- 查询token是否存在
	 * @param token
	 * @return
	 * @throws Exception
	 */
	TbToken queryToken(TbToken token)throws Exception;
	
	/**
	 * deleteToken- 删除过期的token
	 * @return
	 * @throws Exception
	 */
	int deleteToken() throws Exception;
}
